{{tag>brouillon samba administration windows réseau}}
====== Samba AD DC - Partage NFSv4 avec authentification Kerberos ======

Le partage de données se fait communément avec le protocole SMB (Server Message Block). Ce protocole a l'avantage d'être supporté par l'ensemble des plate-formes (Windows, Apple, Linux, Unix).

Une alternative à celui-ci est NFS (Network File System) qui, historiquement, est le protocole de partage de données dans le monde Unix et plus tard Linux. Ces trois premières versions manquaient cruellement de sécurité. La quatrième version apporte des éléments de sécurité concrets dont :
  * L'authentification des intervenants qui a pour but de vérifier l'identité de la personne ou de la machine avec qui l'on communique.
  * La signature des communications qui a pour but de détecter si la communication a été modifiée entre son émission et sa réception.
  * Le chiffrement des communications qui a pour but d'empêcher la compréhension de la communication si elle est interceptée.

===== Prérequis =====
  * Avoir un contrôleur de domaine Samba AD (ou son équivalent Windows) →Se référer à [[:samba-active-directory|Samba - Active Directory Domain Controller (AD DC)]]
  * Avoir deux machines dans ce domaine →Se référer à [[utilisateurs:qedinux:samba_ad_dc_members|Samba AD DC - Intégration de machines au domaine]]
  * Avoir une connaissance de NFS →Se référer à [[:nfs|NFS]]
==== Paramètres ====
Pour cette documentation, les paramètres suivants seront utilisés ((Conformément aux [[https://tools.ietf.org/html/rfc2606|RFC 2606]] (Reserved Top Level DNS Names) et [[https://tools.ietf.org/html/rfc5737|RFC 5737]] (IPv4 Address Blocks Reserved for Documentation) ))
^  Nom de domaine  ^  Royaume (realm)  ^
|  example.com  |  EXAMPLE.COM  | \\ Conformément à RFC 2606

^  Nom de machine  ^  Adresse IP  ^  Role  ^
|  ubndc01  |  192.0.2.11  |  Contrôleur de domaine  |
|  ubnfs01  |  192.0.2.12  |  Serveur de fichier  |
|  ubnws01  |  192.0.2.13  |  Machine client  |

Le répertoire partagé sera le répertoire ///media/example/home// présent sur le serveur de fichier et contenant les répertoires //home// des utilisateurs du domaine. Ce répertoire sera monté sur chaque machine du domaine afin de permettre à chaque utilisateur d'accéder à son répertoire //home// depuis n'importe quelle machine du domaine.

===== Mécanisme d'authentification Kerberos =====

Ult.

===== Configurations =====
==== Configuration du serveur de fichier ====

L'installation de NFS se fait avec le paquet [[apt>nfs-kernel-server]]
<code>sudo apt-get install nfs-kernel-server</code>

Avant de faire fonctionner NFS, il faut préparer le partage. NFSv4 base son partage sur une racine virtuelle définie. Bien qu'il soit possible d'utiliser des répertoires déjà existants, il est recommandé d'en créer un à la racine du système de fichier, par exemple ///export//. Ensuite pour chaque répertoire qui sera partagé, il faut créer un sous répertoire, par exemple ///export/home//. A ce stade, les données partagées le serait sur la partition //Root// ce qui n'est pas une bonne pratique. Afin de ne pas modifier le reste du serveur de fichier, il faut procéder à la jonction du répertoire ///export/home// avec le répertoire qui stockera réellement les données, ///media/example/home//.

En ligne de commande
<code>sudo mount --bind /media/example/home /export/home</code>

Ou en ajoutant une ligne dans le fichier ///etc/fstab// pour que l'opération soit effectuée à chaque redémarrage
<file - /etc/fstab>
# Export NFS4
/media/example/home               /export/home          none       bind             0       0
</file>

Cette structure de répertoires sous ///export// doit être considérée comme une structure virtuelle permettant le fonctionnement de NFS et non pas comme une structure pour le stockage de fichiers directement. Ainsi, l'impact en espace disque sur la partition //Root// est quasi nul.

La configuration des partages se fait au travers du fichier ///etc/exports//
<file - /etc/exports>
/export        192.0.2.0/24(rw,sync,fsid=0,no_subtree_check,crossmnt,sec=krb5)
/export/home   192.0.2.0/24(rw,sync,no_subtree_check,sec=krb5)
</file>

La première ligne avec l'option **//fsid=0//** (ou fsid=root) défint la racine virtuelle du système de fichier partagé. Ainsi, tout les fichiers et répertoires sous ///export// sont accessibles par le partage NFS.

L'option **//sec=krb5//** définit le niveau de sécurité exigé. Il en existe 3:
  * krb5: Authentification Kerberos
  * krb5i: Authentification Kerberos avec signature des communications (**//i//** pour integrity)
  * krb5p: Authentification Kerberos avec chiffrement des communications (**//p//** pour privacy)

<note>Bien qu'encore utilisée, les notations //gss/krb5//, //gss/krb5i// et //gss/krb5p// sont dépréciées. Il est recommandé d'utiliser l'option //sec=//</note>

A ce stade, le démarrage du serveur NFS ne devrait pas encore fonctionner. 
config /etc/default/nfs-kernel-server ...



===== Références =====
  * [[https://wiki.debian.org/NFS/Kerberos|NFSv4 (nfs4) + Kerberos in Debian]]

//Contributeur principal : [[:utilisateurs:Qedinux|Qedinux]]//